import { request } from '@umijs/max';

/** 登录接口 */
export async function login(
  body: API.LoginParams,
  options?: Record<string, any>,
) {
  return request<API.LoginResult>('/best-live-boot/sys/user/login', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json',
    },
    data: body,
    ...(options || {}),
  });
}

/** 退出登录接口 */
export async function logout(options?: Record<string, any>) {
  return request<Record<string, any>>('/best-live-boot/sys/user/logout', {
    method: 'POST',
    ...(options || {}),
  });
}

/** 获取用户信息 */
export async function getUserInfo(options?: Record<string, any>) {
  return request('/best-live-boot/sys/user/getUserInfo', {
    method: 'GET',
    ...(options || {}),
  });
}

// 获取用户列表
export async function getUserList(params: any) {
  return request('/best-live-boot/sys/user/list', {
    method: 'GET',
    params,
  });
}

// 删除单个用户
export async function deleteUser(params: { id: string }) {
  return request('/best-live-boot/sys/user/delete', {
    method: 'DELETE',
    params,
  });
}

// 批量删除用户
export async function deleteUserBatch(params: { ids: string }) {
  return request('/best-live-boot/sys/user/deleteBatch', {
    method: 'DELETE',
    params,
  });
}

// 重置用户密码
export async function resetPassword(params: { id: string; password: string }) {
  return request('/best-live-boot/sys/user/password/reset', {
    method: 'PUT', // 或 POST，根据后端 API 调整
    params, // 或者 data: params
  });
}

// 更新用户状态 (冻结/解冻)
export async function updateUserStatus(params: { id: string; status: number }) {
  return request('/best-live-boot/sys/user/updateStatus', {
    method: 'PUT', // 或 POST，根据后端 API 调整
    data: params, // 或者 data: params
  });
}

// 批量冻结/解冻用户
export async function frozenBatch(params: { ids: string; status: number }) {
  return request('/best-live-boot/sys/user/batchUpdateStatus', {
    method: 'PUT', // 或 POST，根据后端 API 调整
    data: params, // 或者  params
  });
}

// 获取用户信息 (用于编辑/详情)
export async function getUserDetail(id: string) {
  return request(`/best-live-boot/sys/user/queryById/${id}`, {
    method: 'GET',
  });
}

// 添加用户 - 修正：明确参数为 data 对象
export async function addUser(data: any) {
  // 修正：参数名为 data，类型为 any
  return request('/best-live-boot/sys/user/add', {
    method: 'POST',
    data, // 传递 data 对象
  });
}

// 编辑用户 - 修正：明确参数为 data 对象
export async function editUser(data: any) {
  // 修正：参数名为 data，类型为 any
  return request('/best-live-boot/sys/user/edit', {
    method: 'PUT', // 或 POST，根据后端 API 调整
    data, // 传递 data 对象
  });
}

// 检查唯一性 (用户名、手机号、邮箱) - 修正：明确参数为 data 对象
export async function checkUsername(data: {
  tableName: string;
  fieldName: string;
  fieldVal: string;
  dataId?: string;
}) {
  // 修正：参数名为 data
  return request('/best-live-boot/sys/checkOnly', {
    method: 'POST',
    data, // 传递 data 对象
  });
}

export async function checkPhone(data: {
  tableName: string;
  fieldName: string;
  fieldVal: string;
  dataId?: string;
}) {
  // 修正：参数名为 data
  return request('/best-live-boot/sys/checkOnly', {
    method: 'POST',
    data, // 传递 data 对象
  });
}

export async function checkEmail(data: {
  tableName: string;
  fieldName: string;
  fieldVal: string;
  dataId?: string;
}) {
  // 修正：参数名为 data
  return request('/best-live-boot/sys/checkOnly', {
    method: 'POST',
    data, // 传递 data 对象
  });
}

// 获取角色列表 (如果需要)
export async function getRoleList(params: any) {
  return request('/best-live-boot/sys/role/list', {
    method: 'GET',
    params,
  });
}

// 获取所有角色 (如果需要)
export async function queryall(params: any) {
  return request('/best-live-boot/sys/role/queryall', {
    method: 'GET',
    params,
  });
}
